#include <iostream>
#include <memory>
#include <vector>
#include <string>

using std::cout;
using std::endl;
using std::shared_ptr;
using std::vector;
using std::string;

void test()
{
    shared_ptr<int> sp(new int(10));
    shared_ptr<int> sp2(new int());
    shared_ptr<int> sp3(new int);
    int *pInt = sp3.operator->();
    shared_ptr<vector<string>> file(new vector<string>());
    file->push_back("hehhe");

    cout << "*sp = " << *sp << endl;
    sp.reset(new int(999));
    cout << "*sp = " << *sp << endl;
}

int main(int argc, char *argv[])
{
    test();
    return 0;
}

